import java.util.*;

public class J2411122 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>(15);//此时数组长度就为15
        ArrayList<Integer> list3 = new ArrayList<>();
        //当调用不带参数的构造方法时，默认在第一次add中分配大小为10的内存，扩容是按照1.5倍进行扩容
        List<Integer> list1 = new LinkedList<>();
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        list1.add(6);
        List<Integer> list5 = list1.subList(1,3); //取出列表里的一些值（下标范围）
        System.out.println(list5);//如果能够直接打印结果而不是地址，在引用指向对象当中的内容时，此时一定重写了toString方法


        for (int i = 0; i < list1.size(); i++) { //遍历数组
            System.out.print(list1.get(i)+" ");
        }
        System.out.println("===========");
        for (Integer x : list1){
            System.out.print(x+" ");
        }
        System.out.println("===========");
        Iterator<Integer> it = list1.iterator();//迭代器遍历
        while (it.hasNext()){
            System.out.print(it.next()+"");
        }
        System.out.println();
        System.out.println("===========");
        ListIterator<Integer> listIterator = list1.listIterator();//括号里若是改为list2.size()，则是从后往前遍历
        while (listIterator.hasNext()){ //此时这里应该变为listIterator.hasPrevious()
            System.out.print(it.next()+"");//打印出来就为倒着的
        }
        System.out.println();
        //        ArrayList<Integer> list2 = new ArrayList<>(list1);//在调用后可以把两个数组放在一起输出
//        list.add(1);//默认放到数组的最后一位
////        System.out.println(list2);
//        list2.remove(new Integer(2));//需要删除输入的数字而不是下标时，需要在里面输入new Integer()
//        System.out.println(list2);
    }
}
